/*
 * BKPSRam.h
 *
 *  Created on: 2024年8月23日
 *      Author: nwz
 */

#ifndef CODE_BSP_BKPSRAM_H_
#define CODE_BSP_BKPSRAM_H_

#include <all_header.h>
namespace bsp {
class BKPSRam {
private:
	enum class Param : uint32_t {
		BootFlag = 0x0,
	};

	void setValue(Param param, uint32_t val) {
		*(uint32_t*) ((uint32_t) param + BKPSRAM_BASE) = val;
	}
	uint32_t getValue(Param param) {
		return *(uint32_t*) ((uint32_t) param + BKPSRAM_BASE);
	}

public:
	BKPSRam();
	void init();
	virtual ~BKPSRam();

	void setBootFlag(uint32_t flag) {
		setValue(Param::BootFlag, flag);
	}

	uint32_t getBootFlag() {
		return getValue(Param::BootFlag);
	}
};
}
#endif /* CODE_BSP_BKPSRAM_H_ */
